﻿//==================================================================
// Copyright (C) 2011 深圳市中旭企业管理股份有限公司
// 文件名: V_CrmCustomer.cs
// 作 者：代码自动生成
// 日 期：2013-1-22 11:29:55
// 描 述：
// 版 本：1.00
// 修改历史纪录
// 版 本  修改时间      修改人            修改内容
// 1.00             
//==================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using System.Text;
using Csla;
using lite;
using Csla.Validation;
using Csla.Data;
using System.Data.SqlClient;
using ZX.DAL;
using OpenExpressApp.ORM;

namespace ZX.CRM.Library
{
    /// <summary>
    /// 
    /// </summary>
    [Serializable]
    [Table(Name = "V_CrmCustomer")]
    [ZX.DBModule.Table("V_CrmCustomer", "ID")]
    public class V_CrmCustomer : ZX.DBModule.BaseEntity
    {
        #region Business Methods 业务方法
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> IDProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("ID"));
        [DataObjectField(true, true)]
        [Column, PK]
        public Guid ID
        {
            get { return GetProperty(IDProperty); }
            set { SetProperty(IDProperty, value); }
        }

        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CodeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Code"));
        [Column]
        public string Code
        {
            get { return GetProperty(CodeProperty); }
            set { SetProperty(CodeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerNameProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerName"));
        [Column]
        public string CustomerName
        {
            get { return GetProperty(CustomerNameProperty); }
            set { SetProperty(CustomerNameProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionmakerProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Decisionmaker"));
        [Column]
        public string Decisionmaker
        {
            get { return GetProperty(DecisionmakerProperty); }
            set { SetProperty(DecisionmakerProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionPositionProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionPosition"));
        [Column]
        public string DecisionPosition
        {
            get { return GetProperty(DecisionPositionProperty); }
            set { SetProperty(DecisionPositionProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionTelProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionTel"));
        [Column]
        public string DecisionTel
        {
            get { return GetProperty(DecisionTelProperty); }
            set { SetProperty(DecisionTelProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionTel2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionTel2"));
        [Column]
        public string DecisionTel2
        {
            get { return GetProperty(DecisionTel2Property); }
            set { SetProperty(DecisionTel2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> TypeIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("TypeId"));
        [Column]
        public Guid TypeId
        {
            get { return GetProperty(TypeIdProperty); }
            set { SetProperty(TypeIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> LevelIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("LevelId"));
        [Column]
        public Guid LevelId
        {
            get { return GetProperty(LevelIdProperty); }
            set { SetProperty(LevelIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> OriginIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("OriginId"));
        [Column]
        public Guid OriginId
        {
            get { return GetProperty(OriginIdProperty); }
            set { SetProperty(OriginIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> AreaIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("AreaId"));
        [Column]
        public Guid AreaId
        {
            get { return GetProperty(AreaIdProperty); }
            set { SetProperty(AreaIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> TradeIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("TradeId"));
        [Column]
        public Guid TradeId
        {
            get { return GetProperty(TradeIdProperty); }
            set { SetProperty(TradeIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerTypeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerType"));
        [Column]
        public string CustomerType
        {
            get { return GetProperty(CustomerTypeProperty); }
            set { SetProperty(CustomerTypeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerLevelProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerLevel"));
        [Column]
        public string CustomerLevel
        {
            get { return GetProperty(CustomerLevelProperty); }
            set { SetProperty(CustomerLevelProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerOriginProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerOrigin"));
        [Column]
        public string CustomerOrigin
        {
            get { return GetProperty(CustomerOriginProperty); }
            set { SetProperty(CustomerOriginProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerTradeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerTrade"));
        [Column]
        public string CustomerTrade
        {
            get { return GetProperty(CustomerTradeProperty); }
            set { SetProperty(CustomerTradeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerAreaProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerArea"));
        [Column]
        public string CustomerArea
        {
            get { return GetProperty(CustomerAreaProperty); }
            set { SetProperty(CustomerAreaProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> IsPrevateProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("IsPrevate"));
        [Column]
        public int IsPrevate
        {
            get { return GetProperty(IsPrevateProperty); }
            set { SetProperty(IsPrevateProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> ProductIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("ProductId"));
        [Column]
        public Guid ProductId
        {
            get { return GetProperty(ProductIdProperty); }
            set { SetProperty(ProductIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> PhraseIDProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("PhraseID"));
        [Column]
        public Guid PhraseID
        {
            get { return GetProperty(PhraseIDProperty); }
            set { SetProperty(PhraseIDProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> ProductCountProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("ProductCount"));
        [Column]
        public string ProductCount
        {
            get { return GetProperty(ProductCountProperty); }
            set { SetProperty(ProductCountProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> UnionIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("UnionId"));
        [Column]
        public string UnionId
        {
            get { return GetProperty(UnionIdProperty); }
            set { SetProperty(UnionIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> PersonIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("PersonId"));
        [Column]
        public Guid PersonId
        {
            get { return GetProperty(PersonIdProperty); }
            set { SetProperty(PersonIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> PersonCountProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("PersonCount"));
        [Column]
        public string PersonCount
        {
            get { return GetProperty(PersonCountProperty); }
            set { SetProperty(PersonCountProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> AddUserProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("AddUser"));
        [Column]
        public Guid AddUser
        {
            get { return GetProperty(AddUserProperty); }
            set { SetProperty(AddUserProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> AddTimeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("AddTime"));
        [Column]
        public DateTime AddTime
        {
            get { return GetProperty(AddTimeProperty); }
            set { SetProperty(AddTimeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> ProductSumProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("ProductSum"));
        [Column]
        public decimal ProductSum
        {
            get { return GetProperty(ProductSumProperty); }
            set { SetProperty(ProductSumProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> ProductSum2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("ProductSum2"));
        [Column]
        public decimal ProductSum2
        {
            get { return GetProperty(ProductSum2Property); }
            set { SetProperty(ProductSum2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> ProductSum3Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("ProductSum3"));
        [Column]
        public decimal ProductSum3
        {
            get { return GetProperty(ProductSum3Property); }
            set { SetProperty(ProductSum3Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> IsValueProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("IsValue"));
        [Column]
        public int IsValue
        {
            get { return GetProperty(IsValueProperty); }
            set { SetProperty(IsValueProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> UserIDProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("UserID"));
        [Column]
        public Guid UserID
        {
            get { return GetProperty(UserIDProperty); }
            set { SetProperty(UserIDProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> CompanyCreateDateProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("CompanyCreateDate"));
        [Column]
        public DateTime CompanyCreateDate
        {
            get { return GetProperty(CompanyCreateDateProperty); }
            set { SetProperty(CompanyCreateDateProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> StateProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("State"));
        [Column]
        public string State
        {
            get { return GetProperty(StateProperty); }
            set { SetProperty(StateProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> ProvinceProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Province"));
        [Column]
        public string Province
        {
            get { return GetProperty(ProvinceProperty); }
            set { SetProperty(ProvinceProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CityProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("City"));
        [Column]
        public string City
        {
            get { return GetProperty(CityProperty); }
            set { SetProperty(CityProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> AreaProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Area"));
        [Column]
        public string Area
        {
            get { return GetProperty(AreaProperty); }
            set { SetProperty(AreaProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> AddressProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Address"));
        [Column]
        public string Address
        {
            get { return GetProperty(AddressProperty); }
            set { SetProperty(AddressProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> PropertyIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("PropertyId"));
        [Column]
        public Guid PropertyId
        {
            get { return GetProperty(PropertyIdProperty); }
            set { SetProperty(PropertyIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> Tel1Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Tel1"));
        [Column]
        public string Tel1
        {
            get { return GetProperty(Tel1Property); }
            set { SetProperty(Tel1Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionEmailProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionEmail"));
        [Column]
        public string DecisionEmail
        {
            get { return GetProperty(DecisionEmailProperty); }
            set { SetProperty(DecisionEmailProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> Tel2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Tel2"));
        [Column]
        public string Tel2
        {
            get { return GetProperty(Tel2Property); }
            set { SetProperty(Tel2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> PostProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Post"));
        [Column]
        public string Post
        {
            get { return GetProperty(PostProperty); }
            set { SetProperty(PostProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> FaxProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Fax"));
        [Column]
        public string Fax
        {
            get { return GetProperty(FaxProperty); }
            set { SetProperty(FaxProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> EmailProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Email"));
        [Column]
        public string Email
        {
            get { return GetProperty(EmailProperty); }
            set { SetProperty(EmailProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CompanyNettingProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CompanyNetting"));
        [Column]
        public string CompanyNetting
        {
            get { return GetProperty(CompanyNettingProperty); }
            set { SetProperty(CompanyNettingProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CompanyProductProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CompanyProduct"));
        [Column]
        public string CompanyProduct
        {
            get { return GetProperty(CompanyProductProperty); }
            set { SetProperty(CompanyProductProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> PersonSumProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("PersonSum"));
        [Column]
        public int PersonSum
        {
            get { return GetProperty(PersonSumProperty); }
            set { SetProperty(PersonSumProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> PersonSum2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("PersonSum2"));
        [Column]
        public int PersonSum2
        {
            get { return GetProperty(PersonSum2Property); }
            set { SetProperty(PersonSum2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> PersonSum3Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("PersonSum3"));
        [Column]
        public int PersonSum3
        {
            get { return GetProperty(PersonSum3Property); }
            set { SetProperty(PersonSum3Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CompanyGainProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CompanyGain"));
        [Column]
        public string CompanyGain
        {
            get { return GetProperty(CompanyGainProperty); }
            set { SetProperty(CompanyGainProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CompanyAttentionProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CompanyAttention"));
        [Column]
        public string CompanyAttention
        {
            get { return GetProperty(CompanyAttentionProperty); }
            set { SetProperty(CompanyAttentionProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> ExplainProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Explain"));
        [Column]
        public string Explain
        {
            get { return GetProperty(ExplainProperty); }
            set { SetProperty(ExplainProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> SaleadviserIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("SaleadviserId"));
        [Column]
        public Guid SaleadviserId
        {
            get { return GetProperty(SaleadviserIdProperty); }
            set { SetProperty(SaleadviserIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> SaleaddTimeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("SaleaddTime"));
        [Column]
        public DateTime SaleaddTime
        {
            get { return GetProperty(SaleaddTimeProperty); }
            set { SetProperty(SaleaddTimeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> exp1Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("exp1"));
        [Column]
        public string exp1
        {
            get { return GetProperty(exp1Property); }
            set { SetProperty(exp1Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> exp2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("exp2"));
        [Column]
        public string exp2
        {
            get { return GetProperty(exp2Property); }
            set { SetProperty(exp2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> exp3Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("exp3"));
        [Column]
        public string exp3
        {
            get { return GetProperty(exp3Property); }
            set { SetProperty(exp3Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> exp4Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("exp4"));
        [Column]
        public string exp4
        {
            get { return GetProperty(exp4Property); }
            set { SetProperty(exp4Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> exp5Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("exp5"));
        [Column]
        public string exp5
        {
            get { return GetProperty(exp5Property); }
            set { SetProperty(exp5Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> exp6Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("exp6"));
        [Column]
        public int exp6
        {
            get { return GetProperty(exp6Property); }
            set { SetProperty(exp6Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> exp7Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("exp7"));
        [Column]
        public int exp7
        {
            get { return GetProperty(exp7Property); }
            set { SetProperty(exp7Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> exp8Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("exp8"));
        [Column]
        public int exp8
        {
            get { return GetProperty(exp8Property); }
            set { SetProperty(exp8Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> exp9Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("exp9"));
        [Column]
        public int exp9
        {
            get { return GetProperty(exp9Property); }
            set { SetProperty(exp9Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> exp10Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("exp10"));
        [Column]
        public int exp10
        {
            get { return GetProperty(exp10Property); }
            set { SetProperty(exp10Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> AttachListProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("AttachList"));
        [Column]
        public string AttachList
        {
            get { return GetProperty(AttachListProperty); }
            set { SetProperty(AttachListProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> StrongPointProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("StrongPoint"));
        [Column]
        public string StrongPoint
        {
            get { return GetProperty(StrongPointProperty); }
            set { SetProperty(StrongPointProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> ManagerQuestionProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("ManagerQuestion"));
        [Column]
        public string ManagerQuestion
        {
            get { return GetProperty(ManagerQuestionProperty); }
            set { SetProperty(ManagerQuestionProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> CusTrainbudgetProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("CusTrainbudget"));
        [Column]
        public decimal CusTrainbudget
        {
            get { return GetProperty(CusTrainbudgetProperty); }
            set { SetProperty(CusTrainbudgetProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> RADTargetIdProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("RADTargetId"));
        [Column]
        public Guid RADTargetId
        {
            get { return GetProperty(RADTargetIdProperty); }
            set { SetProperty(RADTargetIdProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CusTestimonyProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CusTestimony"));
        [Column]
        public string CusTestimony
        {
            get { return GetProperty(CusTestimonyProperty); }
            set { SetProperty(CusTestimonyProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> IsHQProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("IsHQ"));
        [Column]
        public string IsHQ
        {
            get { return GetProperty(IsHQProperty); }
            set { SetProperty(IsHQProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> MnemonicCodeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("MnemonicCode"));
        [Column]
        public string MnemonicCode
        {
            get { return GetProperty(MnemonicCodeProperty); }
            set { SetProperty(MnemonicCodeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> EmpIDProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("EmpID"));
        [Column]
        public Guid EmpID
        {
            get { return GetProperty(EmpIDProperty); }
            set { SetProperty(EmpIDProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> DepartmentIDProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("DepartmentID"));
        [Column]
        public Guid DepartmentID
        {
            get { return GetProperty(DepartmentIDProperty); }
            set { SetProperty(DepartmentIDProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DeptNameProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DeptName"));
        [Column]
        public string DeptName
        {
            get { return GetProperty(DeptNameProperty); }
            set { SetProperty(DeptNameProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> HomeplaceProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Homeplace"));
        [Column]
        public string Homeplace
        {
            get { return GetProperty(HomeplaceProperty); }
            set { SetProperty(HomeplaceProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> BirthdayTypeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("BirthdayType"));
        [Column]
        public string BirthdayType
        {
            get { return GetProperty(BirthdayTypeProperty); }
            set { SetProperty(BirthdayTypeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> DecisionBirthdayProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("DecisionBirthday"));
        [Column]
        public DateTime DecisionBirthday
        {
            get { return GetProperty(DecisionBirthdayProperty); }
            set { SetProperty(DecisionBirthdayProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> SchoolScientifcProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("SchoolScientifc"));
        [Column]
        public string SchoolScientifc
        {
            get { return GetProperty(SchoolScientifcProperty); }
            set { SetProperty(SchoolScientifcProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionFancyProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionFancy"));
        [Column]
        public string DecisionFancy
        {
            get { return GetProperty(DecisionFancyProperty); }
            set { SetProperty(DecisionFancyProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CreditProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Credit"));
        [Column]
        public string Credit
        {
            get { return GetProperty(CreditProperty); }
            set { SetProperty(CreditProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CharacterProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Character"));
        [Column]
        public string Character
        {
            get { return GetProperty(CharacterProperty); }
            set { SetProperty(CharacterProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> DecisionPersonsunProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("DecisionPersonsun"));
        [Column]
        public int DecisionPersonsun
        {
            get { return GetProperty(DecisionPersonsunProperty); }
            set { SetProperty(DecisionPersonsunProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> HighPersonsumProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("HighPersonsum"));
        [Column]
        public int HighPersonsum
        {
            get { return GetProperty(HighPersonsumProperty); }
            set { SetProperty(HighPersonsumProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> MiddlePersonsumProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("MiddlePersonsum"));
        [Column]
        public int MiddlePersonsum
        {
            get { return GetProperty(MiddlePersonsumProperty); }
            set { SetProperty(MiddlePersonsumProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<int> BelowPersonsumProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<int>("BelowPersonsum"));
        [Column]
        public int BelowPersonsum
        {
            get { return GetProperty(BelowPersonsumProperty); }
            set { SetProperty(BelowPersonsumProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> TrainCompanyProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("TrainCompany"));
        [Column]
        public string TrainCompany
        {
            get { return GetProperty(TrainCompanyProperty); }
            set { SetProperty(TrainCompanyProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> TrainDateProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("TrainDate"));
        [Column]
        public DateTime TrainDate
        {
            get { return GetProperty(TrainDateProperty); }
            set { SetProperty(TrainDateProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> AffectDecisionerProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("AffectDecisioner"));
        [Column]
        public string AffectDecisioner
        {
            get { return GetProperty(AffectDecisionerProperty); }
            set { SetProperty(AffectDecisionerProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerPhylogenyProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerPhylogeny"));
        [Column]
        public string CustomerPhylogeny
        {
            get { return GetProperty(CustomerPhylogenyProperty); }
            set { SetProperty(CustomerPhylogenyProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> PullulationProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Pullulation"));
        [Column]
        public string Pullulation
        {
            get { return GetProperty(PullulationProperty); }
            set { SetProperty(PullulationProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> PainfulProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("Painful"));
        [Column]
        public string Painful
        {
            get { return GetProperty(PainfulProperty); }
            set { SetProperty(PainfulProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> TrainHistoryProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("TrainHistory"));
        [Column]
        public string TrainHistory
        {
            get { return GetProperty(TrainHistoryProperty); }
            set { SetProperty(TrainHistoryProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionSexProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionSex"));
        [Column]
        public string DecisionSex
        {
            get { return GetProperty(DecisionSexProperty); }
            set { SetProperty(DecisionSexProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionTickProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionTick"));
        [Column]
        public string DecisionTick
        {
            get { return GetProperty(DecisionTickProperty); }
            set { SetProperty(DecisionTickProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionRestProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionRest"));
        [Column]
        public string DecisionRest
        {
            get { return GetProperty(DecisionRestProperty); }
            set { SetProperty(DecisionRestProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionLearnProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionLearn"));
        [Column]
        public string DecisionLearn
        {
            get { return GetProperty(DecisionLearnProperty); }
            set { SetProperty(DecisionLearnProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> DecisionFeelTypeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("DecisionFeelType"));
        [Column]
        public Guid DecisionFeelType
        {
            get { return GetProperty(DecisionFeelTypeProperty); }
            set { SetProperty(DecisionFeelTypeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> DecisionTypeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("DecisionType"));
        [Column]
        public Guid DecisionType
        {
            get { return GetProperty(DecisionTypeProperty); }
            set { SetProperty(DecisionTypeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> DecisionBuyTypeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("DecisionBuyType"));
        [Column]
        public Guid DecisionBuyType
        {
            get { return GetProperty(DecisionBuyTypeProperty); }
            set { SetProperty(DecisionBuyTypeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DecisionAttitudeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DecisionAttitude"));
        [Column]
        public string DecisionAttitude
        {
            get { return GetProperty(DecisionAttitudeProperty); }
            set { SetProperty(DecisionAttitudeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> PayOffNum1Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("PayOffNum1"));
        [Column]
        public decimal PayOffNum1
        {
            get { return GetProperty(PayOffNum1Property); }
            set { SetProperty(PayOffNum1Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> PayOffNum2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("PayOffNum2"));
        [Column]
        public decimal PayOffNum2
        {
            get { return GetProperty(PayOffNum2Property); }
            set { SetProperty(PayOffNum2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> PayOffNum3Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("PayOffNum3"));
        [Column]
        public decimal PayOffNum3
        {
            get { return GetProperty(PayOffNum3Property); }
            set { SetProperty(PayOffNum3Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> CustomerSaleTyteProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("CustomerSaleTyte"));
        [Column]
        public Guid CustomerSaleTyte
        {
            get { return GetProperty(CustomerSaleTyteProperty); }
            set { SetProperty(CustomerSaleTyteProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> IsTrainDeptProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("IsTrainDept"));
        [Column]
        public string IsTrainDept
        {
            get { return GetProperty(IsTrainDeptProperty); }
            set { SetProperty(IsTrainDeptProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CompeterCustomerProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CompeterCustomer"));
        [Column]
        public string CompeterCustomer
        {
            get { return GetProperty(CompeterCustomerProperty); }
            set { SetProperty(CompeterCustomerProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> TradeDegreeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("TradeDegree"));
        [Column]
        public string TradeDegree
        {
            get { return GetProperty(TradeDegreeProperty); }
            set { SetProperty(TradeDegreeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerDreamProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerDream"));
        [Column]
        public string CustomerDream
        {
            get { return GetProperty(CustomerDreamProperty); }
            set { SetProperty(CustomerDreamProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> CustomerPromisProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("CustomerPromis"));
        [Column]
        public string CustomerPromis
        {
            get { return GetProperty(CustomerPromisProperty); }
            set { SetProperty(CustomerPromisProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> LectorUserProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("LectorUser"));
        [Column]
        public Guid LectorUser
        {
            get { return GetProperty(LectorUserProperty); }
            set { SetProperty(LectorUserProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<Guid> CustomeerMgrProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<Guid>("CustomeerMgr"));
        [Column]
        public Guid CustomeerMgr
        {
            get { return GetProperty(CustomeerMgrProperty); }
            set { SetProperty(CustomeerMgrProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> LectortimeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("Lectortime"));
        [Column]
        public DateTime Lectortime
        {
            get { return GetProperty(LectortimeProperty); }
            set { SetProperty(LectortimeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<DateTime> MgrtimeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<DateTime>("Mgrtime"));
        [Column]
        public DateTime Mgrtime
        {
            get { return GetProperty(MgrtimeProperty); }
            set { SetProperty(MgrtimeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> DetailAddressProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("DetailAddress"));
        [Column]
        public string DetailAddress
        {
            get { return GetProperty(DetailAddressProperty); }
            set { SetProperty(DetailAddressProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> ProfitNum1Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("ProfitNum1"));
        [Column]
        public decimal ProfitNum1
        {
            get { return GetProperty(ProfitNum1Property); }
            set { SetProperty(ProfitNum1Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> ProfitNum2Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("ProfitNum2"));
        [Column]
        public decimal ProfitNum2
        {
            get { return GetProperty(ProfitNum2Property); }
            set { SetProperty(ProfitNum2Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<decimal> ProfitNum3Property = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<decimal>("ProfitNum3"));
        [Column]
        public decimal ProfitNum3
        {
            get { return GetProperty(ProfitNum3Property); }
            set { SetProperty(ProfitNum3Property, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> SaleadNameProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("SaleadName"));
        [Column]
        public string SaleadName
        {
            get { return GetProperty(SaleadNameProperty); }
            set { SetProperty(SaleadNameProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> SaleadCodeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("SaleadCode"));
        [Column]
        public string SaleadCode
        {
            get { return GetProperty(SaleadCodeProperty); }
            set { SetProperty(SaleadCodeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> LectorNameProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("LectorName"));
        [Column]
        public string LectorName
        {
            get { return GetProperty(LectorNameProperty); }
            set { SetProperty(LectorNameProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> LectorCodeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("LectorCode"));
        [Column]
        public string LectorCode
        {
            get { return GetProperty(LectorCodeProperty); }
            set { SetProperty(LectorCodeProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> UNameProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("UName"));
        [Column]
        public string UName
        {
            get { return GetProperty(UNameProperty); }
            set { SetProperty(UNameProperty, value); }
        }
        /// <summary>
        /// 
        /// </summary>
        private static PropertyInfo<string> UCodeProperty = RegisterProperty(typeof(V_CrmCustomer), new PropertyInfo<string>("UCode"));
        [Column]
        public string UCode
        {
            get { return GetProperty(UCodeProperty); }
            set { SetProperty(UCodeProperty, value); }
        }
        #endregion

        #region Validation Rules 验证规则
        //将验证规则与业务对象的属性联系在一起
        protected override void AddBusinessRules()
        {
            //AddRule的第一个参数是委托变量，也就是说是方法的变量
            ValidationRules.AddRule(CommonRules.StringRequired, "Code");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Code", 15));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerName");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerName", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "Decisionmaker");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Decisionmaker", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionPosition");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionPosition", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionTel");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionTel", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionTel2");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionTel2", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerType");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerType", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerLevel");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerLevel", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerOrigin");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerOrigin", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerTrade");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerTrade", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerArea");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerArea", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "ProductCount");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("ProductCount", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "UnionId");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("UnionId", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "PersonCount");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("PersonCount", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "State");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("State", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "Province");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Province", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "City");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("City", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "Area");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Area", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "Address");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Address", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "Tel1");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Tel1", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionEmail");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionEmail", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "Tel2");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Tel2", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "Post");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Post", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "Fax");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Fax", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "Email");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Email", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "CompanyNetting");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CompanyNetting", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "CompanyProduct");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CompanyProduct", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "CompanyGain");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CompanyGain", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "CompanyAttention");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CompanyAttention", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "Explain");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Explain", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "exp1");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("exp1", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "exp2");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("exp2", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "exp3");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("exp3", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "exp4");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("exp4", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "exp5");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("exp5", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "AttachList");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("AttachList", 1000));
            ValidationRules.AddRule(CommonRules.StringRequired, "StrongPoint");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("StrongPoint", 200));
            ValidationRules.AddRule(CommonRules.StringRequired, "ManagerQuestion");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("ManagerQuestion", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "CusTestimony");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CusTestimony", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "IsHQ");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("IsHQ", 1));
            ValidationRules.AddRule(CommonRules.StringRequired, "MnemonicCode");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("MnemonicCode", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "DeptName");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DeptName", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "Homeplace");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Homeplace", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "BirthdayType");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("BirthdayType", 1));
            ValidationRules.AddRule(CommonRules.StringRequired, "SchoolScientifc");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("SchoolScientifc", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionFancy");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionFancy", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "Credit");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Credit", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "Character");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Character", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "TrainCompany");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("TrainCompany", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "AffectDecisioner");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("AffectDecisioner", 50));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerPhylogeny");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerPhylogeny", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "Pullulation");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Pullulation", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "Painful");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("Painful", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "TrainHistory");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("TrainHistory", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionSex");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionSex", 1));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionTick");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionTick", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionRest");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionRest", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionLearn");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionLearn", 30));
            ValidationRules.AddRule(CommonRules.StringRequired, "DecisionAttitude");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DecisionAttitude", 100));
            ValidationRules.AddRule(CommonRules.StringRequired, "IsTrainDept");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("IsTrainDept", 1));
            ValidationRules.AddRule(CommonRules.StringRequired, "CompeterCustomer");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CompeterCustomer", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "TradeDegree");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("TradeDegree", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerDream");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerDream", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "CustomerPromis");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("CustomerPromis", 500));
            ValidationRules.AddRule(CommonRules.StringRequired, "DetailAddress");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("DetailAddress", 190));
            ValidationRules.AddRule(CommonRules.StringRequired, "SaleadName");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("SaleadName", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "SaleadCode");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("SaleadCode", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "LectorName");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("LectorName", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "LectorCode");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("LectorCode", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "UName");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("UName", 20));
            ValidationRules.AddRule(CommonRules.StringRequired, "UCode");
            ValidationRules.AddRule(CommonRules.StringMaxLength, new Csla.Validation.CommonRules.MaxLengthRuleArgs("UCode", 20));
            //base.AddBusinessRules();
        }
        #endregion

        #region Factory Methods 工厂方法

        public V_CrmCustomer() { }

        public static V_CrmCustomer New()
        {
            return DataPortal.Create<V_CrmCustomer>();
        }
        public static V_CrmCustomer Get(Guid ID)
        {
            return DataPortal.Fetch<V_CrmCustomer>(new SingleLazyCriteria<V_CrmCustomer, Guid>(ID, false));
        }
        public static void Delete(Guid ID)
        {
            DataPortal.Delete(ID);
        }

        #endregion

        #region Data Access 数据访问
        //由于DataPortal_create中没有对数据库的访问，所有标记了Runlocal特性，使得该方法只需在本地运行即可
        //如果代码中有访问数据库的方法，那么就不要用这个特性，使数据门户可以根据情况将此方法的运行选择在应用服务器还是本地
        [RunLocal()]
        protected override void DataPortal_Create()
        {
            //在此调用CheckRules对所有的属性进行验证规则的检查，这样检查只运行一次。
            ValidationRules.CheckRules();
        }


        //可以看到此方法没有标记任何特性
        //此方法要访问数据库所以不能标记本地，由于她没有任何数据库更新操作所以也无需事务性的保护
        //此方法调用结束后会隐含的调用MarkOld（）方法
        private void DataPortal_Fetch(Guid ID)
        {
            //通过连接字符串建立SQL连接对象，Using符号代表，范围释放的意思，SqlConnection对象会在此范围后被释放掉
            using (var ctx = ConnectionManager<SqlConnection>.GetManager(ConnectionStringNames))
            {
                IDb db = DbFactory.Instance.GetDb(ctx.Connection);
                IQuery q = db.Query();
                q.Constrain("ID").Equal(ID);

                var data = db.Select<V_CrmCustomer>(q)[0];
                LoadProperty(IDProperty, data.ID);
                LoadProperty(CodeProperty, data.Code);
                LoadProperty(CustomerNameProperty, data.CustomerName);
                LoadProperty(DecisionmakerProperty, data.Decisionmaker);
                LoadProperty(DecisionPositionProperty, data.DecisionPosition);
                LoadProperty(DecisionTelProperty, data.DecisionTel);
                LoadProperty(DecisionTel2Property, data.DecisionTel2);
                LoadProperty(TypeIdProperty, data.TypeId);
                LoadProperty(LevelIdProperty, data.LevelId);
                LoadProperty(OriginIdProperty, data.OriginId);
                LoadProperty(AreaIdProperty, data.AreaId);
                LoadProperty(TradeIdProperty, data.TradeId);
                LoadProperty(CustomerTypeProperty, data.CustomerType);
                LoadProperty(CustomerLevelProperty, data.CustomerLevel);
                LoadProperty(CustomerOriginProperty, data.CustomerOrigin);
                LoadProperty(CustomerTradeProperty, data.CustomerTrade);
                LoadProperty(CustomerAreaProperty, data.CustomerArea);
                LoadProperty(IsPrevateProperty, data.IsPrevate);
                LoadProperty(ProductIdProperty, data.ProductId);
                LoadProperty(PhraseIDProperty, data.PhraseID);
                LoadProperty(ProductCountProperty, data.ProductCount);
                LoadProperty(UnionIdProperty, data.UnionId);
                LoadProperty(PersonIdProperty, data.PersonId);
                LoadProperty(PersonCountProperty, data.PersonCount);
                LoadProperty(AddUserProperty, data.AddUser);
                LoadProperty(AddTimeProperty, data.AddTime);
                LoadProperty(ProductSumProperty, data.ProductSum);
                LoadProperty(ProductSum2Property, data.ProductSum2);
                LoadProperty(ProductSum3Property, data.ProductSum3);
                LoadProperty(IsValueProperty, data.IsValue);
                LoadProperty(UserIDProperty, data.UserID);
                LoadProperty(CompanyCreateDateProperty, data.CompanyCreateDate);
                LoadProperty(StateProperty, data.State);
                LoadProperty(ProvinceProperty, data.Province);
                LoadProperty(CityProperty, data.City);
                LoadProperty(AreaProperty, data.Area);
                LoadProperty(AddressProperty, data.Address);
                LoadProperty(PropertyIdProperty, data.PropertyId);
                LoadProperty(Tel1Property, data.Tel1);
                LoadProperty(DecisionEmailProperty, data.DecisionEmail);
                LoadProperty(Tel2Property, data.Tel2);
                LoadProperty(PostProperty, data.Post);
                LoadProperty(FaxProperty, data.Fax);
                LoadProperty(EmailProperty, data.Email);
                LoadProperty(CompanyNettingProperty, data.CompanyNetting);
                LoadProperty(CompanyProductProperty, data.CompanyProduct);
                LoadProperty(PersonSumProperty, data.PersonSum);
                LoadProperty(PersonSum2Property, data.PersonSum2);
                LoadProperty(PersonSum3Property, data.PersonSum3);
                LoadProperty(CompanyGainProperty, data.CompanyGain);
                LoadProperty(CompanyAttentionProperty, data.CompanyAttention);
                LoadProperty(ExplainProperty, data.Explain);
                LoadProperty(SaleadviserIdProperty, data.SaleadviserId);
                LoadProperty(SaleaddTimeProperty, data.SaleaddTime);
                LoadProperty(exp1Property, data.exp1);
                LoadProperty(exp2Property, data.exp2);
                LoadProperty(exp3Property, data.exp3);
                LoadProperty(exp4Property, data.exp4);
                LoadProperty(exp5Property, data.exp5);
                LoadProperty(exp6Property, data.exp6);
                LoadProperty(exp7Property, data.exp7);
                LoadProperty(exp8Property, data.exp8);
                LoadProperty(exp9Property, data.exp9);
                LoadProperty(exp10Property, data.exp10);
                LoadProperty(AttachListProperty, data.AttachList);
                LoadProperty(StrongPointProperty, data.StrongPoint);
                LoadProperty(ManagerQuestionProperty, data.ManagerQuestion);
                LoadProperty(CusTrainbudgetProperty, data.CusTrainbudget);
                LoadProperty(RADTargetIdProperty, data.RADTargetId);
                LoadProperty(CusTestimonyProperty, data.CusTestimony);
                LoadProperty(IsHQProperty, data.IsHQ);
                LoadProperty(MnemonicCodeProperty, data.MnemonicCode);
                LoadProperty(EmpIDProperty, data.EmpID);
                LoadProperty(DepartmentIDProperty, data.DepartmentID);
                LoadProperty(DeptNameProperty, data.DeptName);
                LoadProperty(HomeplaceProperty, data.Homeplace);
                LoadProperty(BirthdayTypeProperty, data.BirthdayType);
                LoadProperty(DecisionBirthdayProperty, data.DecisionBirthday);
                LoadProperty(SchoolScientifcProperty, data.SchoolScientifc);
                LoadProperty(DecisionFancyProperty, data.DecisionFancy);
                LoadProperty(CreditProperty, data.Credit);
                LoadProperty(CharacterProperty, data.Character);
                LoadProperty(DecisionPersonsunProperty, data.DecisionPersonsun);
                LoadProperty(HighPersonsumProperty, data.HighPersonsum);
                LoadProperty(MiddlePersonsumProperty, data.MiddlePersonsum);
                LoadProperty(BelowPersonsumProperty, data.BelowPersonsum);
                LoadProperty(TrainCompanyProperty, data.TrainCompany);
                LoadProperty(TrainDateProperty, data.TrainDate);
                LoadProperty(AffectDecisionerProperty, data.AffectDecisioner);
                LoadProperty(CustomerPhylogenyProperty, data.CustomerPhylogeny);
                LoadProperty(PullulationProperty, data.Pullulation);
                LoadProperty(PainfulProperty, data.Painful);
                LoadProperty(TrainHistoryProperty, data.TrainHistory);
                LoadProperty(DecisionSexProperty, data.DecisionSex);
                LoadProperty(DecisionTickProperty, data.DecisionTick);
                LoadProperty(DecisionRestProperty, data.DecisionRest);
                LoadProperty(DecisionLearnProperty, data.DecisionLearn);
                LoadProperty(DecisionFeelTypeProperty, data.DecisionFeelType);
                LoadProperty(DecisionTypeProperty, data.DecisionType);
                LoadProperty(DecisionBuyTypeProperty, data.DecisionBuyType);
                LoadProperty(DecisionAttitudeProperty, data.DecisionAttitude);
                LoadProperty(PayOffNum1Property, data.PayOffNum1);
                LoadProperty(PayOffNum2Property, data.PayOffNum2);
                LoadProperty(PayOffNum3Property, data.PayOffNum3);
                LoadProperty(CustomerSaleTyteProperty, data.CustomerSaleTyte);
                LoadProperty(IsTrainDeptProperty, data.IsTrainDept);
                LoadProperty(CompeterCustomerProperty, data.CompeterCustomer);
                LoadProperty(TradeDegreeProperty, data.TradeDegree);
                LoadProperty(CustomerDreamProperty, data.CustomerDream);
                LoadProperty(CustomerPromisProperty, data.CustomerPromis);
                LoadProperty(LectorUserProperty, data.LectorUser);
                LoadProperty(CustomeerMgrProperty, data.CustomeerMgr);
                LoadProperty(LectortimeProperty, data.Lectortime);
                LoadProperty(MgrtimeProperty, data.Mgrtime);
                LoadProperty(DetailAddressProperty, data.DetailAddress);
                LoadProperty(ProfitNum1Property, data.ProfitNum1);
                LoadProperty(ProfitNum2Property, data.ProfitNum2);
                LoadProperty(ProfitNum3Property, data.ProfitNum3);
                LoadProperty(SaleadNameProperty, data.SaleadName);
                LoadProperty(SaleadCodeProperty, data.SaleadCode);
                LoadProperty(LectorNameProperty, data.LectorName);
                LoadProperty(LectorCodeProperty, data.LectorCode);
                LoadProperty(UNameProperty, data.UName);
                LoadProperty(UCodeProperty, data.UCode);
            }
        }

        [Transactional(TransactionalTypes.TransactionScope)]
        protected override void DataPortal_DeleteSelf()
        {
            //依然是调用下面的方法删除的，只是他此时可以获得自己的Id
            DataPortal_Delete(IDProperty);
        }
        #endregion
    }
}

